package chapter06.再谈形参.可变个数形参;

import java.util.Scanner;

/**
 * ClassName: StringConCatTest
 * Package: 可变个数形参
 * Description:n个字符串进行拼接，每一个字符串之间使用某字符进行分割，如果没有传入字符串，那么返回空字符串""
 *
 * @Author fjorid
 * @Create 2025/1/10 15:25
 * @Version 1.0
 */
public class StringConCatTest {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入要拼接的字符串个数");
        int n = scan.nextInt();
        String[] info = new String[n];
        String temp;
       scan.nextLine();
       /*
       在Java中，Scanner类的nextLine()方法在某些情况下看起来像是没有效果，
       这通常是因为在调用nextLine()之前使用了next()、nextInt()、nextDouble()、nextFloat()等方法。
       这些方法在读取输入后，会留下一个换行符（\n）在输入流中，而nextLine()方法会立即读取这个换行符并结束，
       导致看起来像是跳过了输入。
        */
        for (int i = 0; i < n; i++) {
            System.out.println("请输入字符串");
            temp = scan.nextLine();
            info[i] = temp;//为info数组赋值

        }
        StringConCatTest concata = new StringConCatTest();
        System.out.println(concata.concat("-",info));//对于可变个形参的方法在其对应位置可输入一个对应类型的数组。
        scan.close();

    }
    public  String concat(String operator,String...strings){//该方法对字符串进行拼接，并用指定的分隔符分割。
        String result = "";
        for (int i = 0; i < strings.length; i++) {
            if(i==0){
                result += strings[i];
            }else {
                result += operator + strings[i];
            }
        }
        return  result;
    }
}
